function m(a, b) {
    console.log(this, a, b);
}

m(1, 2)

/* 改变this 的指向 */
var arr = {}
m.call(arr, 1, 2)
m.apply(arr, [1,2])




/* this指向的多种方式 */

function User(name, age) {
    console.log(this);
}

/*  直接调用this指向window */
User()

/*  通过new方式调用this指向新对象 */
new User()


var obj = {
    a: 1,
    b: 2,
    method: function () {
        console.log(this);
    }
    ,
    c: {
        m: function () {
            console.log(this);
        }
    }
}

/* 指向obj.c */
obj.c.m()


/* 将函数的值赋值给一个变量，在全局调用指向window */
var test = obj.c.m  //把函数的值保存在一个变量里面
test()